<?php
	/**
     * Incluyendo el archivo donde se encuentra la clase xajax
     */
	require_once $_SERVER['DOCUMENT_ROOT'] . '/spa/xajax/xajax_core/xajax.inc.php';

    /**
     * Instanciando un objeto de la clase xajax
     */
	$xajax = new xajax();
	
	$rif = $HTTP_GET_VARS['rif']; // Para que el usuario pueda regresar al local
	
	$totalFactura = 0;
	
	function buscarNombreLocal($rif) {
		$conexion = OCILogon('spa', '1234') or die("¡No se pudo conectar a la base de datos!") or die(OCIError());
		
		$query = "SELECT NOMBRE_LOCAL
				  FROM LOCAL
				  WHERE PK_RIF_LOCAL = '$rif'";
				  
		$sentencia = OCIParse($conexion, $query);
		
		OCIExecute($sentencia);
		
		OCILogOff($conexion);
		
		$rows = OCIFetchstatement($sentencia, $resultado);
		
		if ($rows > 0)
			$nombreLocal = $resultado['NOMBRE_LOCAL'][0];
			
		return $nombreLocal;
	}
	
	function buscarDatosCliente($numeroFactura) {
		$conexion = OCILogon ('spa','1234') or die( "¡No se pudo conectar a la base de Datos!") or die (OCIError());
		
		$query = "SELECT c.NOMBRE || ' ' || c.APELLIDO || '/C.I. ' || c.PK_CI CLIENTE
		          FROM FACTURA f, CLIENTE c
				  WHERE f.PK_NUMERO = $numeroFactura
				  AND f.FK_CI = c.PK_CI";
				  
		$sentencia = OCIParse($conexion, $query);
		
		OCIExecute($sentencia);
		
		OCICommit($conexion);
		
		OCILogOff($conexion);
		
		$rows = OCIFetchstatement($sentencia, $resultado);
		
		if ($rows > 0)
			$datosCliente = $resultado['CLIENTE'][0];
			
		return $datosCliente;
	}
	
	/**
     * Escribiendo una función que será llamada por medio de ajax
     */
	function calcular_monto($numeroFactura) {
		$conexion = OCILogon ('spa','1234') or die( "¡No se pudo conectar a la base de Datos!") or die (OCIError());
		
		/**
		 * Calculando el monto total de los servicios a cancelar en la factura número $numeroFactura
		 */
    	$query = "SELECT SUM(s.COSTO_SERVICIO*d.CANTIDAD_SERVICIOS) MONTO_SERVICIOS
				  FROM DETALLE_FACTURA d, SERVICIO s
				  WHERE d.PK_FK_NUMERO_FACTURA = $numeroFactura
				  AND d.FK_ID_SERVICIO = s.PK_ID_SERVICIO
				  GROUP BY d.PK_FK_NUMERO_FACTURA";
				  
		$sentencia = OCIParse($conexion, $query);
	
		OCIExecute($sentencia);
		
		$rows = OCIFetchstatement($sentencia, $resultado);
		
		if ($rows > 0)
			/**
		 	 * Acumulando el monto de la factura
		 	 */
			$totalFactura += $resultado['MONTO_SERVICIOS'][0];			
		
		/**
		 * Calculando el monto total de los productos a cancelar en la factura número $numeroFactura
		 */
		$query = "SELECT SUM(p.COSTO_UNITARIO*d.CANTIDAD_PRODUCTOS) MONTO_PRODUCTOS
				  FROM DETALLE_FACTURA d, PRODUCTO p
				  WHERE d.PK_FK_NUMERO_FACTURA = $numeroFactura
				  AND d.FK_ID_PRODUCTO = p.PK_ID_PRODUCTO
				  GROUP BY d.PK_FK_NUMERO_FACTURA";
				  
		$sentencia = OCIParse($conexion, $query);
	
		OCIExecute($sentencia);
		
		$rows = OCIFetchstatement($sentencia, $resultado);
		
		if ($rows > 0)
			/**
		 	 * Acumulando el monto de la factura
		 	 */
			$totalFactura += $resultado['MONTO_PRODUCTOS'][0];
			
		/**
		 * Calculando el monto total de los combos (incluyendo descuentos) a cancelar en la factura número $numeroFactura
		 */			
		$query = "SELECT SUM(d.CANTIDAD_COMBOS*(p.COSTO_UNITARIO*pc.CANTIDAD*(1-c.TASA_DESCUENTO/100))) MONTO_COMBOS
				  FROM DETALLE_FACTURA d, COMBO c, PRO_COM pc, PRODUCTO p
				  WHERE d.PK_FK_NUMERO_FACTURA = $numeroFactura
				  AND d.FK_ID_COMBO = c.PK_ID_COMBO
				  AND c.PK_ID_COMBO = pc.PK_FK_ID_COMBO
				  AND pc.PK_FK_ID_PRODUCTO = p.PK_ID_PRODUCTO
				  GROUP BY d.PK_FK_NUMERO_FACTURA";
				  
		$sentencia = OCIParse($conexion, $query);
	
		OCIExecute($sentencia);
		
		$rows = OCIFetchstatement($sentencia, $resultado);
		
		if ($rows > 0)
			/**
		 	 * Acumulando el monto de la factura
		 	 */
			$totalFactura += $resultado['MONTO_COMBOS'][0];
			
		/**
		 * Incluyendo el IVA en el monto total de la factura número $numeroFactura.
		 * Recuperando fecha de emisión de la factura para validar la fecha en la que se realiza el pago
		 */
		$query = "SELECT FECHA_EMISION, IVA
				  FROM FACTURA
				  WHERE PK_NUMERO = $numeroFactura";
		
		$sentencia = OCIParse($conexion, $query);
	
		OCIExecute($sentencia);
		
		$rows = OCIFetchstatement($sentencia, $resultado);
		
		if ($rows > 0) {
			/**
		 	 * Calculando el monto total de la factura
		 	 */
			$totalFactura = round($totalFactura*(1+$resultado['IVA'][0]/100), 2);
			
			/**
			 * Obteniendo la fecha de emisión
			 */
			$fechaEmision = '<input name="fechaEmision" type="text" size="40" value="' . $resultado['FECHA_EMISION'][0] . '" readonly="readonly" /></font>';
		}
		
		if ($numeroFactura == 0)
			$totalFactura = '';
			
		$query = "SELECT NVL(SUM(MONTO), 0) MONTO_CANCELADO
				  FROM PAG_FOR
				  WHERE PK_FK_NUMERO_FACTURA = $numeroFactura";
				  
		$sentencia = OCIParse($conexion, $query);
		
		OCIExecute($sentencia);
		
		$rows = OCIFetchstatement($sentencia, $resultado);
		
		if ($rows > 0) {
			$montoPorCancelar = $totalFactura - str_replace(',', '.', $resultado['MONTO_CANCELADO'][0]);
			
			$montoApagar = '<input name="montoApagar" type="text" id="montoApagar" value="' . $montoPorCancelar . '" size="36" maxlength="13" onblur="xajax_validarMontoApagar(document.pago.montoPorCancelar.value, document.pago.montoApagar.value)" /><font color="#FFFFFF" size="+1"> $US</font>';
			
			$montoPorCancelar = '<input name="montoPorCancelar" type="text" id="montoPorCancelar" value="' . $montoPorCancelar . '" size="36" readonly="readonly"" /><font color="#FFFFFF" size="+1"> $US</font>';
		}

		$montoFacturado = '<input name="montoFacturado" type="text" size="36" value="' . $totalFactura . '" readonly="readonly" /><font color="#FFFFFF" size="+1"> $US</font>';
		
		
		$respuesta = new xajaxResponse();
		
		$respuesta -> assign("fechaEmision", "innerHTML", $fechaEmision);
		$respuesta -> assign("montoApagar", "innerHTML", $montoApagar);
		$respuesta -> assign("montoFacturado", "innerHTML", $montoFacturado);
		$respuesta -> assign("montoPorCancelar", "innerHTML", $montoPorCancelar);
		
		$respuesta -> assign("errorFechaPago", "innerHTML", '<font color="#990000" size="-1">* Campo obligatorio</font>');
		$respuesta -> assign("errorFP", "innerHTML", '<input name="errorFechaPago" type="hidden" value="true" />');
		
		return $respuesta;
	}
	
	$xajax -> registerFunction("calcular_monto");
	
	function insertar_pago($pago) {
		$numeroFactura = $pago['numeroFactura'];
		$fechaEmision = $pago['fechaEmision'];
		$fechaPago = $pago['date'];
		$montoFacturado = $pago['montoFacturado'];
		$montoPorCancelar = $pago['montoPorCancelar'];
		$montoApagar = $pago['montoApagar'];
		$formaPago = $pago['formaPago'];
		
		$conexion = OCILogon ('spa','1234') or die( "¡No se pudo conectar a la base de Datos!") or die (OCIError());
		
		if ($formaPago == 'efectivo') {
			$formaPago = 'EFECTIVO';
			
			$query = "SELECT PK_ID_FORMA_PAGO
					  FROM FORMA_PAGO
					  WHERE TIPO = 'EFECTIVO'";
					  
			$sentencia = OCIParse($conexion, $query);
			
			OCIExecute($sentencia);
			
			$rows = OCIFetchstatement($sentencia, $resultado);
			
			if ($rows > 0)
				$idFormaPago = $resultado['PK_ID_FORMA_PAGO'][0];	
			
			else {
				$query = "INSERT INTO FORMA_PAGO
			      	  	  VALUES (PK_ID_FORMA_PAGO.NEXTVAL, '$formaPago', NULL, NULL, NULL, NULL, NULL)";
				  
				$sentencia = OCIParse($conexion, $query);
	
				$c = OCIExecute($sentencia);
		
				OCICommit($conexion);
				
				$query = "SELECT MAX(PK_ID_FORMA_PAGO) ID_FORMA_PAGO
				      	  FROM FORMA_PAGO";
				  
				$sentencia = OCIParse($conexion, $query);
	
				OCIExecute($sentencia);
		 
				$rows = OCIFetchstatement($sentencia, $resultado);
		 
				if ($rows > 0)
					$idFormaPago = $resultado['ID_FORMA_PAGO'][0];
			}
		}
			
		if ($formaPago == 'cheque') {
			$formaPago = 'CHEQUE';
			$banco = $pago['banco'];
			$numeroCheque = $pago['numeroCheque'];
			$numCtaCheque = $pago['numCtaCheque'];
			
			$query = "INSERT INTO FORMA_PAGO
			   	  	  VALUES (PK_ID_FORMA_PAGO.NEXTVAL, '$formaPago', $numeroCheque, '$banco', '$numCtaCheque', NULL, NULL)";
			  
			$sentencia = OCIParse($conexion, $query);
	
			$c = OCIExecute($sentencia);
		
			OCICommit($conexion);
			
			$query = "SELECT MAX(PK_ID_FORMA_PAGO) ID_FORMA_PAGO
				      FROM FORMA_PAGO";
				  
			$sentencia = OCIParse($conexion, $query);
	
			OCIExecute($sentencia);
		 
			$rows = OCIFetchstatement($sentencia, $resultado);
		 
			if ($rows > 0)
				$idFormaPago = $resultado['ID_FORMA_PAGO'][0];
		}
			
		if ($formaPago == 'tarjetaDebito') {
			$formaPago = 'TARJETA DE DEBITO';
			$banco = $pago['banco'];
			$pin = $pago['pin'];
			
			if ($pago['tipoCta'] == 'ahorro')
				$tipoCta = 'AHORRO';
			
			if ($pago['tipoCta'] == 'corriente')
				$tipoCta = 'CORRIENTE';
				
			$query = "INSERT INTO FORMA_PAGO
			   	  	  VALUES (PK_ID_FORMA_PAGO.NEXTVAL, '$formaPago', NULL, '$banco', NULL, $pin, '$tipoCta')";
			  
			$sentencia = OCIParse($conexion, $query);
	
			$c = OCIExecute($sentencia);
		
			OCICommit($conexion);
			
			$query = "SELECT MAX(PK_ID_FORMA_PAGO) ID_FORMA_PAGO
				      FROM FORMA_PAGO";
				  
			$sentencia = OCIParse($conexion, $query);
	
			OCIExecute($sentencia);
		 
			$rows = OCIFetchstatement($sentencia, $resultado);
		 
			if ($rows > 0)
				$idFormaPago = $resultado['ID_FORMA_PAGO'][0];
		}
			
		if ($formaPago == 'tarjetaCredito') {
			$formaPago = 'TARJETA DE CREDITO';
			$banco = $pago['banco'];
			$pin = $pago['pin'];
			
			$query = "INSERT INTO FORMA_PAGO
			   	  	  VALUES (PK_ID_FORMA_PAGO.NEXTVAL, '$formaPago', NULL, '$banco', NULL, $pin, NULL)";
			  
			$sentencia = OCIParse($conexion, $query);
	
			$c = OCIExecute($sentencia);
		
			OCICommit($conexion);
			
			$query = "SELECT MAX(PK_ID_FORMA_PAGO) ID_FORMA_PAGO
				      FROM FORMA_PAGO";
				  
			$sentencia = OCIParse($conexion, $query);
	
			OCIExecute($sentencia);
		 
			$rows = OCIFetchstatement($sentencia, $resultado);
		 
			if ($rows > 0)
				$idFormaPago = $resultado['ID_FORMA_PAGO'][0];
		}
		
		$query = "INSERT INTO PAGO
		 		  VALUES (PK_ID_PAGO.NEXTVAL, $numeroFactura, '$fechaPago')";
				  
		$sentencia = OCIParse($conexion, $query);
	
		$c = OCIExecute($sentencia);
		
		OCICommit($conexion);
		
		$query = "SELECT MAX(PK_ID_PAGO) ID_PAGO
		          FROM PAGO";
				  
		$sentencia = OCIParse($conexion, $query);
	
		OCIExecute($sentencia);
		
		$rows = OCIFetchstatement($sentencia, $resultado);
		
		if ($rows > 0)
			$idPago = $resultado['ID_PAGO'][0];
		 
		$query = "INSERT INTO PAG_FOR
			   	  VALUES ($montoApagar, $idPago, $numeroFactura, $idFormaPago)";
				  
		$sentencia = OCIParse($conexion, $query);
	
		$c = OCIExecute($sentencia);
		
		OCICommit($conexion);
		
		OCILogOff($conexion);
		 
		$nombreCliente ='<font color="#FFFFFF" size="+1">Cliente</font>';
		$selectFactura ='<font color="#FFFFFF">' . buscarDatosCliente($numeroFactura) . '</font>';
		$fechaEmision = '<font color="#FFFFFF">' . $fechaEmision . '</font>';
		$fechaPago = '<font color="#FFFFFF">' . $fechaPago . '</font>';
		$montoFacturado = '<font color="#FFFFFF">' . $montoFacturado . '</font>';
		$montoPorCancelar = '<font color="#FFFFFF">' . $montoPorCancelar . '</font>';
		$montoApagar = '<font color="#FFFFFF">' . $montoApagar . '</font>';
		$formaPago = '<font color="#FFFFFF">' . $formaPago . '</font>';
		$banco = '<font color="#FFFFFF">' . $banco . '</font>';
		$numeroCheque = '<font color="#FFFFFF">' . $numeroCheque . '</font>';
		$numCtaCheque = '<font color="#FFFFFF">' . $numCtaCheque . '</font>';
		$pin = '<font color="#FFFFFF">' . $pin . '</font>';
		$tipoCta = '<font color="#FFFFFF">' . $tipoCta . '</font>';
		
		/**
		 * Muestra el mensaje de éxito o error después de la inserción
		 */
		if ($c) {
			$mensaje = '<font size="+1" color="#FFFFFF">¡INSERCIÓN EXITOSA!</font>';
		}
		else {
			$mensaje = '<font size="+1" color="#990000">¡INSERCIÓN FALLIDA!</font>';	
		}
		   
		/**
         * Instanciando un objeto de la clase que genera la respuesta con ajax
         */
        $respuesta = new xajaxResponse();

        /**
         * Escribiendo en las capas (div) con id = nombre, tipo, costo, descripcion
		 * En cada capa se crea el campo de texto con el valor defecto traído de la base de datos
         */
		$respuesta -> assign("nombreCliente", "innerHTML", $nombreCliente);
		$respuesta -> assign("selectFactura", "innerHTML", $selectFactura);
		$respuesta -> assign("errorCi", "innerHTML", '');
		$respuesta -> assign("fechaEmision", "innerHTML", $fechaEmision);
		$respuesta -> assign("fechaPago", "innerHTML", $fechaPago);
		$respuesta -> assign("montoFacturado", "innerHTML", $montoFacturado);
		$respuesta -> assign("montoPorCancelar", "innerHTML", $montoPorCancelar);
		$respuesta -> assign("montoApagar", "innerHTML", $montoApagar);
		$respuesta -> assign("formaPago", "innerHTML", $formaPago);
		$respuesta -> assign("banco", "innerHTML", $banco);
		$respuesta -> assign("numeroCheque", "innerHTML", $numeroCheque);
		$respuesta -> assign("numCtaCheque", "innerHTML", $numCtaCheque);
		$respuesta -> assign("pin", "innerHTML", $pin);
		$respuesta -> assign("tipoCta", "innerHTML", $tipoCta);
		
		$respuesta -> assign("borrar", "innerHTML", "");
		$respuesta -> assign("registrar", "innerHTML", "");
		
		$respuesta -> assign("mensaje", "innerHTML", $mensaje);
		 
		/**
         * Devolviendo el objeto que genera la respuesta con ajax
         */
        return $respuesta;
	}
	
	/**
     * Asociando la función creada al objeto xajax
     */
     $xajax -> registerFunction("insertar_pago");
	 
	function buscarFacturasCliente($ci) {
		if (!is_numeric($ci)) {
			$respuesta = new xajaxResponse();
			
			$respuesta -> assign("errorCi", "innerHTML", '<font color="#990000" size="-1">* CI Factura debe ser entera</font>');
			
			return $respuesta;
		}
		
		$conexion = OCILogon('spa', '1234') or die("¡No se pudo conectar a la base de datos!") or die(OCIError());
		
		$query = "SELECT PK_NUMERO, PK_NUMERO ||' - '|| FECHA_EMISION FACTURA
				  FROM FACTURA
				  WHERE FK_CI = $ci";
		
		$sentencia = OCIParse($conexion, $query);
		
		OCIExecute($sentencia);
		
		$rows = OCIFetchstatement($sentencia, $resultado);
		
		if ($rows > 0) {
			$selectFactura = '<select name="numeroFactura" onChange="xajax_calcular_monto(document.pago.numeroFactura.options[document.pago.numeroFactura.selectedIndex].value)"><option value="0">Seleccione&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</option>';
			
			for ($i = 0; $i < $rows; $i++)
				$selectFactura .= '<option value=' . $resultado['PK_NUMERO'][$i] . '>' . $resultado['FACTURA'][$i] . '</option>';
		
			$selectFactura .= '</select>';
		}
		
		else {
			$selectFactura = '<input name="ciFactura" type="text" size="40" maxlength="10" onblur="xajax_buscarFacturasCliente(document.pago.ciFactura.value)" />';
			
			$respuesta = new xajaxResponse();
			
			$respuesta -> assign("selectFactura", "innerHTML", $selectFactura);
			$respuesta -> assign("errorCi", "innerHTML", '<font color="#990000" size="-1">* CI Factura no registrada</font>');
			
			return $respuesta;
		}
		
		$respuesta = new xajaxResponse();
		
		$respuesta -> assign("selectFactura", "innerHTML", $selectFactura);
		$respuesta -> assign("nombreCliente", "innerHTML", '<font color="#FFFFFF" size="+1">Factura</font>');
		$respuesta -> assign("errorCi", "innerHTML", '<font color="#FFFFFF" size="-1">Número - fecha de emisión</font>');
		
		return $respuesta;
	 }
	 
	$xajax -> registerFunction("buscarFacturasCliente");
	
	function validarFechaPago($fechaEmision, $fechaPago) {
		$respuesta = new xajaxResponse();
		
		list($diaEmision, $mesEmision, $añoEmision) = explode('/', $fechaEmision);
		list($diaPago, $mesPago, $añoPago) = explode('/', $fechaPago);
		
		$fechaEmision = mktime(0, 0, 0, $mesEmision, $diaEmision, $añoEmision);
		$fechaPago = mktime(0, 0, 0, $mesPago, $diaPago, $añoPago);

		if ($fechaEmision > $fechaPago) {
			$respuesta -> assign("errorFechaPago", "innerHTML", '<font color="#990000" size="-1">* Fecha de pago debe ser posterior a fecha de emisión</font>');
			$respuesta -> assign("errorFP", "innerHTML", '<input name="errorFechaPago" type="hidden" value="true" />');
		}
		 
		else {
			$respuesta -> assign("errorFechaPago", "innerHTML", '');
		 	$respuesta -> assign("errorFP", "innerHTML", '<input name="errorFechaPago" type="hidden" value="false" />');
		}
		
		return $respuesta;
	}
	
	$xajax -> registerFunction("validarFechaPago");
	
	function validarMontoApagar($montoPorCancelar, $montoApagar) {
		$respuesta = new xajaxResponse();		 
		 
		if ($montoApagar == '') {
			$respuesta -> assign("errorMontoApagar", "innerHTML", '<font color="#990000" size="-1">* Campo obligatorio</font>');
			$respuesta -> assign("errorMP", "innerHTML", '<input name="errorMontoApagar" type="hidden" value="true" />');
		}
		 
		else if (!is_numeric($montoApagar)) {
			$respuesta -> assign("errorMontoApagar", "innerHTML", '<font color="#990000" size="-1">* Monto a pagar debe ser numérico</font>');
			$respuesta -> assign("errorMP", "innerHTML", '<input name="errorMontoApagar" type="hidden" value="true" />');
		}
		
		else if (($montoApagar < 0.01) || ($montoApagar > 99999999.99)) {
			$respuesta -> assign("errorMontoApagar", "innerHTML", '<font color="#990000" size="-1">* Monto a pagar entre  0.01 y 99999999.99</font>');
			$respuesta -> assign("errorMP", "innerHTML", '<input name="errorMontoApagar" type="hidden" value="true" />');
		}
		
		else if ($montoApagar > $montoPorCancelar) {
			$respuesta -> assign("errorMontoApagar", "innerHTML", '<font color="#990000" size="-1">* Monto a pagar debe ser menor o igual que el monto por cancelar</font>');
			$respuesta -> assign("errorMP", "innerHTML", '<input name="errorMontoApagar" type="hidden" value="true" />');
		}
		
		else {
			$respuesta -> assign("errorMontoApagar", "innerHTML", '');
		 	$respuesta -> assign("errorMP", "innerHTML", '<input name="errorMontoApagar" type="hidden" value="false" />');	
		}
		
		return $respuesta;
	}
	
	$xajax -> registerFunction("validarMontoApagar");
	
	function validarFormaPagoEfectivo() {
		$respuesta = new xajaxResponse();
		 
		$respuesta -> assign("errorBanco", "innerHTML", '');
		$respuesta -> assign("errorB", "innerHTML", '<input name="errorBanco" type="hidden" value="false" />');
		
		$respuesta -> assign("errorNumeroCheque", "innerHTML", '');
		$respuesta -> assign("errorNC", "innerHTML", '<input name="errorNumeroCheque" type="hidden" value="false" />');
		
		$respuesta -> assign("errorNumCtaCheque", "innerHTML", '');
		$respuesta -> assign("errorNCC", "innerHTML", '<input name="errorNumCtaCheque" type="hidden" value="false" />');
		
		$respuesta -> assign("errorPin", "innerHTML", '');
		$respuesta -> assign("errorP", "innerHTML", '<input name="errorPin" type="hidden" value="false" />');		
		
		return $respuesta;
	}
	
	$xajax -> registerFunction("validarFormaPagoEfectivo");
	
	function validarFormaPagoCheque($banco, $numeroCheque, $numCtaCheque) {
		$respuesta = new xajaxResponse();
		
		$respuesta -> assign("errorPin", "innerHTML", '');
		$respuesta -> assign("errorP", "innerHTML", '<input name="errorPin" type="hidden" value="false" />');
		
		if ($banco == '') {
			$respuesta -> assign("errorBanco", "innerHTML", '<font color="#990000" size="-1">* Campo obligatorio</font>');
			$respuesta -> assign("errorB", "innerHTML", '<input name="errorBanco" type="hidden" value="true" />');
		}
		
		if ($numeroCheque == '') {
			$respuesta -> assign("errorNumeroCheque", "innerHTML", '<font color="#990000" size="-1">* Campo obligatorio</font>');
			$respuesta -> assign("errorNC", "innerHTML", '<input name="errorNumeroCheque" type="hidden" value="true" />');
		}
		
		if ($numCtaCheque == '') {
			$respuesta -> assign("errorNumCtaCheque", "innerHTML", '<font color="#990000" size="-1">* Campo obligatorio</font>');
			$respuesta -> assign("errorNCC", "innerHTML", '<input name="errorNumCtaCheque" type="hidden" value="true" />');
		}
		
		if (($banco != '') && ($numeroCheque != '') && ($numCtaCheque != '')) {
			$respuesta -> assign("errorBanco", "innerHTML", '');
			$respuesta -> assign("errorB", "innerHTML", '<input name="errorBanco" type="hidden" value="false" />');
			
			$respuesta -> assign("errorNumeroCheque", "innerHTML", '');
			$respuesta -> assign("errorNC", "innerHTML", '<input name="errorNumeroCheque" type="hidden" value="false" />');
			
			$respuesta -> assign("errorNumCtaCheque", "innerHTML", '');
			$respuesta -> assign("errorNCC", "innerHTML", '<input name="errorNumCtaCheque" type="hidden" value="false" />');
		}
		
		return $respuesta;
	}
	
	$xajax -> registerFunction("validarFormaPagoCheque");
	
	function validarFormaPagoTarjeta($banco, $pin) {
		$respuesta = new xajaxResponse();
		
		$respuesta -> assign("errorNumeroCheque", "innerHTML", '');
		$respuesta -> assign("errorNC", "innerHTML", '<input name="errorNumeroCheque" type="hidden" value="false" />');
			
		$respuesta -> assign("errorNumCtaCheque", "innerHTML", '');
		$respuesta -> assign("errorNCC", "innerHTML", '<input name="errorNumCtaCheque" type="hidden" value="false" />');
		
		if ($banco == '') {
			$respuesta -> assign("errorBanco", "innerHTML", '<font color="#990000" size="-1">* Campo obligatorio</font>');
			$respuesta -> assign("errorB", "innerHTML", '<input name="errorBanco" type="hidden" value="true" />');
		}
		
		if ($pin == '') {
			$respuesta -> assign("errorPin", "innerHTML", '<font color="#990000" size="-1">* Campo obligatorio</font>');
			$respuesta -> assign("errorP", "innerHTML", '<input name="errorPin" type="hidden" value="true" />');
		}
		
		if (($banco != '') && ($pin != '')) {
			$respuesta -> assign("errorBanco", "innerHTML", '');
			$respuesta -> assign("errorB", "innerHTML", '<input name="errorBanco" type="hidden" value="false" />');
			
			$respuesta -> assign("errorPin", "innerHTML", '');
			$respuesta -> assign("errorP", "innerHTML", '<input name="errorPin" type="hidden" value="false" />');
		}
		
		return $respuesta;
	}
	
	$xajax -> registerFunction("validarFormaPagoTarjeta");
	
	function validarBanco($banco, $formaPago) {		
		if (($formaPago == 'cheque') || ($formaPago == 'tarjetaDebito') || ($formaPago == 'tarjetaCredito')) {
			
			$respuesta = new xajaxResponse();	
			
			if ($banco == '') {
				$respuesta -> assign("errorBanco", "innerHTML", '<font color="#990000" size="-1">* Campo obligatorio</font>');
				$respuesta -> assign("errorB", "innerHTML", '<input name="errorBanco" type="hidden" value="true" />');	
			}
		
			else {
				$respuesta -> assign("errorBanco", "innerHTML", '');
				$respuesta -> assign("errorB", "innerHTML", '<input name="errorBanco" type="hidden" value="false" />');	
			}
			
			return $respuesta;	
			
		}
	}
	
	$xajax -> registerFunction("validarBanco");
	
	function validarNumeroCheque($numeroCheque, $formaPago) {
		if ($formaPago == 'cheque') {
			
			$respuesta = new xajaxResponse();
			
			if ($numeroCheque == '') {
				$respuesta -> assign("errorNumeroCheque", "innerHTML", '<font color="#990000" size="-1">* Campo obligatorio</font>');
				$respuesta -> assign("errorNC", "innerHTML", '<input name="errorNumeroCheque" type="hidden" value="true" />');	
			}
			
			else if ((!is_numeric((int)$numeroCheque)) || (strlen($numeroCheque) != 10)) {
				$respuesta -> assign("errorNumeroCheque", "innerHTML", '<font color="#990000" size="-1">* Número de cheque debe ser entero de 10 cifras</font>');
				$respuesta -> assign("errorNC", "innerHTML", '<input name="errorNumeroCheque" type="hidden" value="true" />');
			}
		
			else {
				$respuesta -> assign("errorNumeroCheque", "innerHTML", '');
				$respuesta -> assign("errorNC", "innerHTML", '<input name="errorNumeroCheque" type="hidden" value="false" />');	
			}
			
			return $respuesta;
			
		}
	}
	
	$xajax -> registerFunction("validarNumeroCheque");
	
	function validarNumCtaCheque($numCtaCheque, $formaPago) {
		if ($formaPago == 'cheque') {
			
			$respuesta = new xajaxResponse();
			
			if ($numCtaCheque == '') {
				$respuesta -> assign("errorNumCtaCheque", "innerHTML", '<font color="#990000" size="-1">* Campo obligatorio</font>');
				$respuesta -> assign("errorNCC", "innerHTML", '<input name="errorNumCtaCheque" type="hidden" value="true" />');	
			}
			
			else {
				$respuesta -> assign("errorNumCtaCheque", "innerHTML", '');
				$respuesta -> assign("errorNCC", "innerHTML", '<input name="errorNumCtaCheque" type="hidden" value="false" />');	
			}
			
			return $respuesta;
			
		}
	}
	
	$xajax -> registerFunction("validarNumCtaCheque");
	
	function validarPin($pin, $formaPago) {
		if (($formaPago == 'tarjetaDebito') || ($formaPago == 'tarjetaCredito')) {
			
			$respuesta = new xajaxResponse();
			
			if ($pin == '') {
				$respuesta -> assign("errorPin", "innerHTML", '<font color="#990000" size="-1">* Campo obligatorio</font>');
				$respuesta -> assign("errorP", "innerHTML", '<input name="errorPin" type="hidden" value="true" />');	
			}
			
			else if ((!is_numeric((int)$pin)) || (strlen($pin) != 3)) {
				$respuesta -> assign("errorPin", "innerHTML", '<font color="#990000" size="-1">* Pin debe ser entero de 3 cifras</font>');
				$respuesta -> assign("errorP", "innerHTML", '<input name="errorPin" type="hidden" value="true" />');
			}
			
			else {
				$respuesta -> assign("errorPin", "innerHTML", '');
				$respuesta -> assign("errorP", "innerHTML", '<input name="errorPin" type="hidden" value="false" />');	
			}
			
			return $respuesta;
			
		}
	}
	
	$xajax -> registerFunction("validarPin");
	
	function reiniciarCamposErrores() {
		$respuesta = new xajaxResponse();
		
		$respuesta -> assign("errorFechaPago", "innerHTML", '');
		$respuesta -> assign("errorFP", "innerHTML", '<input name="errorFechaPago" type="hidden" value="true"');
		
		$respuesta -> assign("errorMontoApagar", "innerHTML", '');
		$respuesta -> assign("errorMP", "innerHTML", '<input name="errorMontoApagar" type="hidden" value="true"');
		
		$respuesta -> assign("fechaEmision", "innerHTML", '<input name="fechaEmision" type="text" size="40" readonly="readonly" /></font>');
		
		$respuesta -> assign("montoFacturado", "innerHTML", '<input name="montoFacturado" type="text" id="montoFacturado" size="36" readonly="readonly" /><font color="#FFFFFF" size="+1"> $US</font>');
		
		$respuesta -> assign("montoPorCancelar", "innerHTML", '<input name="montoPorCancelar" type="text" id="montoPorCancelar" size="36" readonly="readonly" /><font color="#FFFFFF" size="+1"> $US</font>');
		
		$respuesta -> assign("montoApagar", "innerHTML", '<input name="montoApagar" type="text" id="montoApagar" size="36" maxlength="13" onblur="xajax_validarMontoApagar(document.pago.montoPorCancelar.value, document.pago.montoApagar.value)" /><font color="#FFFFFF" size="+1"> $US</font>');
		
		return $respuesta;
	}
	
	$xajax -> registerFunction("reiniciarCamposErrores");
	
	/**
     * Ejecutando el método del objeto xajax que permite procesar las
     * peticiones que puedan llegar desde la página
     */
     $xajax -> processRequest();
	 
?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<!--
Design by Free CSS Templates
http://www.freecsstemplates.org
Released for free under a Creative Commons Attribution 2.5 License

Name       : Beach Sunset
Description: A two-column, fixed-width design for 1024x768 screen resolutions.
Version    : 1.0
Released   : 20090416

-->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<title>Insertar nuevo pago</title>

<?php
	$xajax -> printJavascript("xajax/");
?>
	<script>
		function insertarPago() {
			errorFechaPago = document.pago.errorFechaPago.value;
			errorMontoApagar = document.pago.errorMontoApagar.value;
			errorBanco = document.pago.errorBanco.value;
			errorNumeroCheque = document.pago.errorNumeroCheque.value;
			errorNumCtaCheque = document.pago.errorNumCtaCheque.value;
			errorPin = document.pago.errorPin.value;
			
			montoApagar = document.pago.montoApagar.value;
			
			if (montoApagar <= 0)
				alert("¡El monto a pagar debe ser mayor que cero (0)!");
			
			else if ((errorFechaPago == 'false') && (errorMontoApagar == 'false') && (errorBanco == 'false') && (errorNumeroCheque == 'false') && (errorNumCtaCheque == 'false') && (errorPin == 'false'))
				xajax_insertar_pago(xajax.getFormValues('pago'));
				
			else
				alert("¡El pago presenta inconvenientes, revise e intente de nuevo!");
		}
	</script>

	<!--Hoja de estilos del calendario -->
  	<link rel="stylesheet" type="text/css" media="all" href="jscalendar/calendar-system.css" title="win2k-cold-1" />

  	<!-- librería principal del calendario -->
 	<script type="text/javascript" src="jscalendar/calendar.js"></script>

 	<!-- librería para cargar el lenguaje deseado -->
  	<script type="text/javascript" src="jscalendar/lang/calendar-es.js"></script>

  	<!-- librería que declara la función Calendar.setup, que ayuda a generar un calendario en unas pocas líneas de código -->
  	<script type="text/javascript" src="jscalendar/calendar-setup.js"></script> 
  
<meta name="keywords" content="" />
<meta name="description" content="" />
<link href="style.css" rel="stylesheet" type="text/css" media="screen" />
<style type="text/css">
<!--
.Estilo2 {font-size: 12px; color: #FF6600; }
.Estilo3 {font-size: 12px; color: #FF9900; }
.Estilo4 {color: #FF6600}
.Estilo5 {font-size: 24px}
.Estilo7 {color: #FFFFFF}
.Estilo8 {font-size: 12px; color: #FFFFFF; }
.Estilo9 {font-size: 60px}
.Estilo10 {color: #F0F0F0}
-->
</style>
</head>
<body>

<div id="wrapper">

		<div id="header">	
 <br />
		<div id="menu">				      
				<li  class="active"><a href="HOME.php" title="HOME">HOME</a></li>
				<li><a href="INSERTAR.php" title="INSERTAR">INSERTAR</a></li>
				<li><a href="ELIMINAR.php" title="ELIMINAR">ELIMINAR</a></li>
				<li><a href="CONSULTAR.php" title="CONSULTAR">CONSULTAR</a></li>
				<li><a href="MODIFICAR.php" title="MODIFICAR">MODIFICAR</a></li>
                <li><a href="MOSTRAR.php" title="MOSTRAR">MOSTRAR</a></li>
	  	</div>  <!-- end #menu -->	
  </div>    <!-- end #header -->	

		<div id="logo">
			<h1><a href="#"><span class="">Take a Rest</span> ... </a></h1>
		    <div align="left"></div>
		</div>
		<!-- end #logo -->	
        
</div> <!-- end *header- wrapper -->


<div id="page">

	<div id="sidebar">
		<ul>
			<li>
				<h2>Acciones</h2>
				<p class="Estilo2">Pulse sobre una acción para ejecutarla</p>
			</li>
            <li>
            	<font color="#FFFFFF">&raquo; <a href="InsertarPago.php?rif=<?php echo $rif ?>" class="Estilo10">Agregar un nuevo pago</a></font>
            </li>
            <li>
            	<font color="#FFFFFF">&raquo; <a href="ModificarPago.php?rif=<?php echo $rif ?>" class="Estilo10">Modificar un pago existente</a></font>
            </li>
            <li>
            	<font color="#FFFFFF">&raquo; <a href="EliminarPago.php?rif=<?php echo $rif ?>" class="Estilo10">Eliminar un pago</a></font>
            </li>
            <?php
				if ($rif != '') {
					$linkRegresar = '<li>';
					$linkRegresar .= '<font color="#FFFFFF">';
					$linkRegresar .= '&raquo; <a href="ConsultarLocal.php?rif=' . $rif . '" class="Estilo10">Regresar al local</a>';
					$linkRegresar .= '</li>';
					
					echo $linkRegresar;
				}
			?>
		</ul>
</div> <!-- end #sidebar -->

	<?php
   		if ($rif != '') {
			$local = '<div align="left">';
			$local .= '<font color="#FFFFFF" size="+1">Local actual: </font>';
			$local .= '<font color="#CC3300">' . buscarNombreLocal($rif) . '</font>';
			$local .= '</div><br /><br />';
			
			echo $local;
		}
   	?>

  <h1 align="center"><font color="#FFFFFF">Insertar pago</font></h1>
  <p>&nbsp;</p>
  <div align="center">
  <form id="pago" name="pago">
  <table width="598" border="0" cellpadding="5" cellspacing="5">
  <tr>
    <td width="231" align="right"><div id="nombreCliente"><font color="#FFFFFF" size="+1">CI Factura</font></div></td>
    <td width="263" align="left"><div id="selectFactura"><input name="ciFactura" type="text" size="40" maxlength="10" onblur="xajax_buscarFacturasCliente(document.pago.ciFactura.value)" /></div></td>
  </tr>
  <tr>
  	<td></td>
    <td><div id="errorCi"><font color="#FFFFFF" size="-1">* Ingrese una cédula</font></div></td>
  </tr>
  <tr>
  	<td width="231" align="right"><font color="#FFFFFF" size="+1">Fecha de emisión</font></td>
    <td width="263" align="left"><div id="fechaEmision"><input name="fechaEmision" type="text" size="40" readonly="readonly" /></div></td>
  </tr>
  <tr>
  	<td></td>
  </tr>
  <tr>
    <td width="231" align="right"><font color="#FFFFFF" size="+1">Fecha de pago</font></td>
    <td width="263" align="left"><div id="fechaPago"><input type="text" name="date" id="campo_fecha" size="33" readonly="readonly" onchange="xajax_validarFechaPago(document.pago.fechaEmision.value, document.pago.campo_fecha.value)" />&nbsp;<input type="button" id="lanzador" value="..." /></div></td>
  </tr>
  <tr>
  	<td></td>
    <td><div id="errorFechaPago"></div></td>
    <td width="54"><div id="errorFP"><input name="errorFechaPago" type="hidden" value="true" /></div></td>
  </tr>
  <tr>
  	<td width="231" align="right"><font color="#FFFFFF" size="+1">Monto facturado</font></td>
    <td width="263" align="left"><div id="montoFacturado"><input name="montoFacturado" type="text" id="montoFacturado" size="36" readonly="readonly" /><font color="#FFFFFF" size="+1"> $US</font></div></td>
  </tr>
  <tr>
  	<td></td>
  </tr>  
  <tr>
  	<td width="231" align="right"><font color="#FFFFFF" size="+1">Monto por cancelar</font></td>
    <td width="263" align="left"><div id="montoPorCancelar"><input name="montoPorCancelar" type="text" id="montoPorCancelar" size="36" readonly="readonly" /><font color="#FFFFFF" size="+1"> $US</font></div></td>
  </tr>
  <tr>
  	<td></td>
  </tr>  
  <tr>
    <td align="right"><font color="#FFFFFF" size="+1">Monto a pagar</font></td>
    <td align="left"><div id="montoApagar"><input name="montoApagar" type="text" id="montoApagar" size="36" maxlength="13" onblur="xajax_validarMontoApagar(document.pago.montoPorCancelar.value, document.pago.montoApagar.value)" /><font color="#FFFFFF" size="+1"> $US</font></div></td>
  </tr>
  <tr>
  	<td></td>
    <td><div id="errorMontoApagar"></div></td>
    <td><div id="errorMP"><input name="errorMontoApagar" type="hidden" value="false" /></div></td>
  </tr>
  <tr>
    <td width="231" align="right"><font color="#FFFFFF" size="+1">Forma de pago</font></td>
    <td width="263" align="left"><div id="formaPago">
    	
        Efectivo&nbsp;<input name="formaPago" type="radio" value="efectivo" checked="checked" onclick="xajax_validarFormaPagoEfectivo()" /><br />
        
        Cheque&nbsp;<input name="formaPago" type="radio" value="cheque" onclick="xajax_validarFormaPagoCheque(document.pago.banco.value, document.pago.numeroCheque.value, document.pago.numCtaCheque.value)" /><br />
        
        Tarjeta de débito&nbsp;<input name="formaPago" type="radio" value="tarjetaDebito" onclick="xajax_validarFormaPagoTarjeta(document.pago.banco.value, document.pago.pin.value)" /><br />
        
        Tarjeta de crédito&nbsp;<input name="formaPago" type="radio" value="tarjetaCredito" onclick="xajax_validarFormaPagoTarjeta(document.pago.banco.value, document.pago.pin.value)" /></div>
        
    </td>
  </tr>
  <tr>
  	<td></td>
  </tr>
  <tr>
    <td align="right"><font color="#FFFFFF" size="+1">Banco</font></td>
    <td align="left"><div id="banco"><input name="banco" type="text" id="banco" size="40" maxlength="30" 
    onblur="for (i = 0; i < document.pago.formaPago.length; i++)
            	if (document.pago.formaPago[i].checked)
                	indice = i;
                    
            xajax_validarBanco(document.pago.banco.value, document.pago.formaPago[indice].value)" /></div></td>
  </tr>
  <tr>
  	<td></td>
    <td><div id="errorBanco"></div></td>
    <td><div id="errorB"><input name="errorBanco" type="hidden" value="false" /></div></td>
  </tr>
  <tr>
    <td align="right"><font color="#FFFFFF" size="+1">Número de cheque</font></td>
    <td align="left"><div id="numeroCheque"><input name="numeroCheque" type="text" id="numeroCheque" size="40" maxlength="10" 
    onblur="for (i = 0; i < document.pago.formaPago.length; i++)
            	if (document.pago.formaPago[i].checked)
                	indice = i;
                    
            xajax_validarNumeroCheque(document.pago.numeroCheque.value, document.pago.formaPago[indice].value)" /></div></td>
  </tr>
  <tr>
  	<td></td>
    <td><div id="errorNumeroCheque"></div></td>
    <td><div id="errorNC"><input name="errorNumeroCheque" type="hidden" value="false" /></div></td>
  </tr>
  <tr>
    <td align="right"><font color="#FFFFFF" size="+1">Número cuenta cheque</font></td>
    <td align="left"><div id="numCtaCheque"><input name="numCtaCheque" type="text" id="numCtaCheque" size="40" maxlength="20" 
    onblur="for (i = 0; i < document.pago.formaPago.length; i++)
            	if (document.pago.formaPago[i].checked)
                	indice = i;
                    
            xajax_validarNumCtaCheque(document.pago.numCtaCheque.value, document.pago.formaPago[indice].value)" /></div></td>
  </tr>
  <tr>
  	<td></td>
    <td><div id="errorNumCtaCheque"></div></td>
    <td><div id="errorNCC"><input name="errorNumCtaCheque" type="hidden" value="false" /></div></td>
  </tr>
  <tr>
    <td align="right"><font color="#FFFFFF" size="+1">Pin</font></td>
    <td align="left"><div id="pin"><input name="pin" type="text" id="pin" size="40" maxlength="3" 
    onblur="for (i = 0; i < document.pago.formaPago.length; i++)
            	if (document.pago.formaPago[i].checked)
                	indice = i;
                    
            xajax_validarPin(document.pago.pin.value, document.pago.formaPago[indice].value)" /></div></td>
  </tr>
  <tr>
  	<td></td>
    <td><div id="errorPin"></div></td>
    <td><div id="errorP"><input name="errorPin" type="hidden" value="false" /></div></td>
  </tr>
  <tr>
    <td width="231" align="right"><font color="#FFFFFF" size="+1">Tipo de cuenta</font></td>
    <td width="263" align="left"><div id="tipoCta">
    	<font color="#FFFFFF">Ahorro</font><input name="tipoCta" type="radio" value="ahorro" checked="checked" />
        <font color="#FFFFFF">Corriente</font><input name="tipoCta" type="radio" value="corriente" /></div></td>
  </tr>
  <tr>
  	<td align="right"><div id="borrar"><input name="borrar" type="reset" value="Borrar todo" onclick="xajax_reiniciarCamposErrores()" /></div></td>
  	<td align="left"><div id="registrar"><input name="registrar" type="button" value="Registrar" onclick="insertarPago()" /></div></td>
  </tr>
  <tr>
  	<td align="center" colspan="2"><div id="mensaje"></div></td>
  </tr>
</table>
  </form>
  </div>
</div>
<!-- end #page -->

<div id="footer">
	<p> Design by <a href="http://www.freecsstemplates.org/">Nubielis, Eduardo, Daniel </a></p>
</div>
<!-- end #footer -->
</div>

<!-- script que define y configura el calendario-->
<script type="text/javascript">
   Calendar.setup({
    inputField     :    "campo_fecha",     // id del campo de texto
     ifFormat     :     "%d/%m/%y",     // formato de la fecha que se escriba en el campo de texto
     button     :    "lanzador"     // el id del botón que lanzará el calendario
});
</script>

</body>
</html>